 /**
   * Copyright 2014 Viettel Telecom. All rights reserved.
   * VIETTEL PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
   */
 package com.viettel.core.dao.cms; 
import java.util.List;

import com.viettel.core.entities.cms.ArticleCategory;
import com.viettel.core.entities.vo.ArticleCategorySearchFilter;
import com.viettel.core.entities.vo.ArticleCategorySearchVO;
import com.viettel.core.entities.vo.ArticleCategoryVO;
import com.viettel.core.exceptions.DataAccessException;
 /**
   *  Mo ta muc dich cua lop (interface)
   *  @author: TOANTM1
   *  @version:  
   *  @since: 27/02/2014 - 10:50:59
   */
 public interface ArticleCategoryDAO { 
 
 	/**@author TOANTM1
  	 * 27/02/2014 - 10:50:59
  	 * For: 
  	 * @description: 
  	 */
 	ArticleCategory getArticleCategoryById(Integer id) throws DataAccessException; 
 
 	/**@author TOANTM1
  	 * 27/02/2014 - 10:50:59
  	 * For: 
  	 * @description: 
  	 */
 	ArticleCategory createArticleCategory(ArticleCategory articleCategory) throws DataAccessException; 
 
 	/**@author TOANTM1
  	 * 27/02/2014 - 10:50:59
  	 * For: 
  	 * @description: 
  	 */
 	void updateArticleCategory(ArticleCategory articleCategory) throws DataAccessException; 
 
 	/**@author TOANTM1
  	 * 27/02/2014 - 10:50:59
  	 * For: 
  	 * @description: 
  	 */
 	void deleteArticleCategory(ArticleCategory articleCategory) throws DataAccessException; 
 	
 	/**
 	 * @author huanlh5
 	 * @throws DataAccessException
 	 */
 	List<ArticleCategory> getAllArticleCategory() throws DataAccessException;
 	
 	/**
 	 * @author huanlh5
 	 * @throws DataAccessException
 	 */
 	List<ArticleCategory> getListArticleCategoryByParentId(Integer parentId) throws DataAccessException;
 	
 	/**
 	 * @author huanlh5
 	 * @throws DataAccessException
 	 */
 	List<ArticleCategory> getListParentArticleCategory(Integer parentId) throws DataAccessException;
 	
 	List<ArticleCategorySearchVO> getListParentByArticleCategory(Integer parentId) throws DataAccessException;
 	
 	List<ArticleCategorySearchVO> getListNotParentByArticleCategory(Integer parentId) throws DataAccessException;
 	
 	/**
 	 * @author tuantm20
 	 * @throws DataAccessException
 	 */
 	List<ArticleCategorySearchVO> getListArticleCategoryByFilter(ArticleCategorySearchFilter filter)
			throws DataAccessException;
 	
 	/**
 	 * @author huanlh5
 	 * @throws DataAccessException
 	 */
 	List<ArticleCategory> getArticleCategoryNotParent() throws DataAccessException;
 	
 	/**
 	 *  Lay danh muc Parent&Childrent bai biet theo loai
 	 *  @author: toantm1
 	 *  @since:  21-05-2014 - 08:42:56
 	 *  @Param:  categoryId
 	 *  @Return: List<ArticleCategoryVO>
 	 */
 	List<ArticleCategoryVO> getListArticleCategory(int categoryId) throws DataAccessException;
 	Boolean checkNameExist(String userName) throws DataAccessException;
} 
